<?php

/**
 *      [Discuz!] (C)2001-2099 Comsenz Inc.
 *      This is NOT a freeware, use is subject to license terms
re_common_stat 趋势统计

daytime, int, 时间,
login, int, 登陆,
mobilelogin, int, 手机登陆,
connectlogin, int, QQConnect登陆,
register, int, 注册,
invite, int, 邀请,
appinvite, int, 应用邀请,
doing, int, 记录,
blog, int, 日志,
pic, int, 图片,
poll, int, 投票,
activity, int, 活动,
share, int, 分享,
thread, int, 主题,
docomment, int, 记录评论,
blogcomment, int, 日志评论,
piccomment, int, 图片评论,
sharecomment, int, 分享评论,
reward, int, 悬赏,
debate, int, 辩论,
trade, int, 商品,
group, int, 群组,
groupjoin, int, 参与群组,
groupthread, int, 群组主题,
grouppost, int, 群组回复,
post, int, 主题回复,
wall, int, 留言,
poke, int, 打招呼,
click, int, 表态,
sendpm, int, 发送PM,
friend, int, 成为好友,
addfriend, int, 好友请求,

 *      $Id: table_common_stat.php 28051 2012-02-21 10:36:56Z zhangguosheng $
 */

if(!defined('IN_DISCUZ')) {
	exit('Access Denied');
}

class table_common_stat extends discuz_table
{
	public function __construct() {

		$this->_table = 'common_stat';
		$this->_pk    = 'daytime';

		parent::__construct();
	}

	public function updatestat($uid, $type, $primary = 0, $num = 1) {
		$nowdaytime = dgmdate(TIMESTAMP, 'Ymd');
		$type = addslashes($type);
		if($primary) {
			$setarr = array(
				'uid' => intval($uid),
				'daytime' => $nowdaytime,
				'type' => $type
			);
			if(C::t('common_statuser')->check_exists($uid, $nowdaytime, $type)) {
				return false;
			} else {
				C::t('common_statuser')->insert($setarr);
			}
		}
		$num = abs(intval($num));
		if(DB::result_first('SELECT COUNT(*) FROM '.DB::table($this->_table)." WHERE `daytime` = '$nowdaytime'")){
			DB::query('UPDATE '.DB::table($this->_table)." SET `$type`=`$type`+$num WHERE `daytime` = '$nowdaytime'");
		} else {
			C::t('common_statuser')->clear_by_daytime($nowdaytime);
			DB::insert($this->_table, array('daytime'=>$nowdaytime, $type=>$num));
		}
	}

	public function fetch_post_avg() {
		return DB::result_first("SELECT AVG(post) FROM ".DB::table($this->_table));
	}

	public function fetch_all($begin, $end, $field = '*') {
		$data = array();
		$query = DB::query('SELECT %i FROM %t WHERE daytime>=%d AND daytime<=%d ORDER BY daytime', array($field, $this->_table, $begin, $end));
		while($value = DB::fetch($query)) {
			$data[$value['daytime']] = $value;
		}
		return $data;
	}
	public function fetch_all_by_daytime($daytime, $start = 0, $limit = 0, $sort = 'ASC') {
		$wheresql = '';
		$parameter = array($this->_table);
		if($daytime) {
			$wheresql = 'WHERE daytime>=%d';
			$parameter[] = $daytime;
		}
		return DB::fetch_all("SELECT * FROM %t $wheresql ORDER BY daytime $sort".DB::limit($start, $limit), $parameter);
	}
}

?>